草庐IT

Java ASN.1 编译器

全部标签

c# - 为什么 c# 编译器需要在 switch 构造中使用 break 语句?

我很难理解为什么编译器需要使用break语句。不可能错过它,因为现在允许掉落。我看到了C或C++中断的原因,但这里是否需要中断。为什么在案件结束后中断不是内置行为?它不只是没有语义的语法吗?抱歉,如果这是一个愚蠢的问题。编辑:仅当案例为空时才允许掉落。当那里有语句时,你不能省略break语句。所以,这是另一回事。 最佳答案 编译器并不“需要”break语句,它需要它们。这是一个设计决定。它使代码在语义上接近C和C++,同时消除了一直是C语言的一个有争议的“特性”的失败陷阱。 关于c#-为

c# - 打开 Visual Studio 2012 时编译时间变慢

大家下午好我有一个很奇怪的问题。打开VS2012时,编译时间非常慢。当通过VS和/或直接从命令行通过csc.exe构建时,会出现这种缓慢的编译时间。测试:创建一个包含以下项目的文件夹:批处理文件(compile.bat)包含:echo%time%csc/target:libraryclass1.csecho%time%和一个class1.cs包含:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceClassL

c# - 编译时常量差异

更新:这似乎是一个编译器转移注意力的问题,因为以下内容实际上是有效的:constintMyInt=default(int);问题在于DateTime不是有效的const,而不是default的使用。让我感到困惑的主要原因是没有意识到default(DateTime)是在可选参数中专门处理的(而且我得出了一个错误的结论,即default(DateTime)由于错误消息忽略了其他可能的条件而被视为编译时常量)。MarcinJuraszek在他的回答中解决了这个问题。原始问题:这是无耻地从MarcGravell来自thisanswer的评论中撕下的另一个问题。为什么以下内容有效://Noco

c# - 使用编译时编织的依赖注入(inject)?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。7年前关闭。Improvethisquestion我只是想了解PostSharp,老实说,我认为它很棒。但是有一点对我来说很难实现纯依赖注入(inject)(不是服务定位器)cannotbedone在PostSharp方面,也许在我的理解中是编译时编织的结果。来自PHP背景,Symfony有JMSAopBundle这仍然允许将依赖项注入(inject)它的拦截器。.Net是否有一些具有相同功能的库?或者我在PostSharp中遗漏了什么

c# - 编译错误。将属性与结构一起使用

请解释结构构造函数的以下错误。如果我将结构更改为类错误消失了。publicstructDealImportRequest{publicDealRequestBaseDealReq{get;set;}publicintImportRetryCounter{get;set;}publicDealImportRequest(DealRequestBasedrb){DealReq=drb;ImportRetryCounter=0;}}错误CS0188:“this”对象在其所有字段都分配给之前无法使用错误CS0843:自动实现属性的支持字段“DealImportRequest.DealReq”必

以单声道编译的 C# - 检测操作系统

我正在尝试让一个C#应用程序在OSX下运行,这并不是完全没有痛苦。为了在短期内解决一些问题,我正在考虑在OSX中运行时设置一些特定的规则。但是...我可以使用什么来确定应用程序是在Windows还是OSX下运行? 最佳答案 来自Monowiki(根据我的经验,OSX被识别为Unix):intp=(int)Environment.OSVersion.Platform;if((p==4)||(p==128)){Console.WriteLine("RunningonUnix");}else{Console.WriteLine("NOTr

c# - 了解 dotPeek 反编译代码中编译器生成的类型

嘿嘿。我正在阅读DigiTrafficAccelerator的反编译源码(我认为这是最好的学习方式),直到我得到了一些看不懂的代码!请看一下:internalclassProxyFarm{privatestaticRandomrand=newRandom();privatestaticRegexUserPassAtHostPort=newRegex("\r\n^\r\n(?[^:]+?):(?[^@]+?)\r\n@\r\n(?[^:]+?(?::\\d+)?)\r\n$",RegexOptions.IgnorePatternWhitespace);privatestaticRegex

c# - 如何强制 MSBuild 在不重新编译的情况下运行代码分析

默认情况下,代码分析仅针对已编译的项目进行。因此,当我从命令行运行MSBuild时,它仅在第一次运行代码分析。在后续调用中,将跳过代码分析。背景:我想评估CA规则,看看在启用规则时我们的代码中会有多少警告。为此,我不想重新编译所有内容——这需要一些时间——只是重新运行代码分析。你如何才能做到这一点?我正在使用VisualStudio2013和MSBuild12.0。即使明确打开代码分析也无济于事:msbuildDesktopBuild.proj/p:RunCodeAnalysis=true 最佳答案 好像是del/s*.lastco

c# - 如果字段的顺序不同,为什么编译器会为匿名类型生成不同的类

我考虑过两种情况:vara=new{a=5};varb=new{a=6};Console.WriteLine(a.GetType()==b.GetType());//TrueIdeone:http://ideone.com/F8QwHY和:vara=new{a=5,b=7};varb=new{b=7,a=6};Console.WriteLine(a.GetType()==b.GetType());//FalseIdeone:http://ideone.com/hDTcxX问题是为什么字段顺序真的很重要?这是否有任何原因,或者仅仅是因为它是(这就是设计)。如果原因只是匿名类型不应该以这种

c# - .NET 属性生成 "must declare a body because it is not marked abstract or extern"编译错误

我有一个.NET3.5(目标框架)网络应用程序。我有一些看起来像这样的代码:publicstringLogPath{get;privateset;}publicstringErrorMsg{get;privateset;}它给我这些行的编译错误:"mustdeclareabodybecauseitisnotmarkedabstractorextern."有什么想法吗?我的理解是这种风格的属性在.NET3.0中是有效的。谢谢!原来问题出在我的.sln文件本身。尽管我在构建选项中更改了目标版本,但在.sln文件中,我发现了这一点:TargetFramework="3.0"将其更改为“3.5